// pages/set-admin/set-admin.js
const app = getApp()
const { request } = require("../../utils/request")

Page({
  /**
   * 页面的初始数据
   */
  data: {
    companies: [],
    active: 0,
  },

  // 切换 Tab
  onChange(event) {
    this.setData({ active: event.detail.index })
  },

  // 获取公司和员工数据
  getCompanies() {
    request({
      url: `${app.globalData.baseUrl}/sadmin/employees`,
      method: "GET",
    })
      .then((res) => {
        console.log(res.data.data)
        if (res.statusCode === 200) {
          this.setData({ companies: res.data.data })
        } else {
          wx.showToast({
            title: "获取数据失败",
            icon: "none",
          })
        }
      })
      .catch((error) => {
        console.error("获取数据失败", error)
        wx.showToast({
          title: "获取数据失败",
          icon: "none",
        })
      })
  },

  // 切换管理员状态
  setAdmin(event) {
    const { companyId, employeeId } = event.currentTarget.dataset
    this.updateAdminStatus(companyId, employeeId, true)
  },

  // 取消管理员状态
  removeAdmin(event) {
    const { companyId, employeeId } = event.currentTarget.dataset
    this.updateAdminStatus(companyId, employeeId, false)
  },

  // 更新管理员状态
  updateAdminStatus(companyId, employeeId, isManager) {
    const urlPath = isManager ? "employees" : "admins"

    // 发送更新请求到后端
    request({
      url: `${app.globalData.baseUrl}/sadmin//${urlPath}/changePosition/${employeeId}`,
      method: "PUT",
    })
      .then((res) => {
        console.log(res)
        if (res.statusCode === 200 && res.data.code === 1) {
          wx.showToast({
            title: "更新成功",
            icon: "success",
          })
          this.getCompanies()
        } else {
          wx.showToast({
            title: res.data.msg,
            icon: "none",
          })
        }
      })
      .catch((error) => {
        console.error("更新失败", error)
        wx.showToast({
          title: "更新失败",
          icon: "none",
        })
      })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getCompanies()
    this.getTabBar().init()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
})
